package com.xbongbong.saas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.workorder.pojo.vo.WorkOrderOutstockDeleteVO;
import com.xbongbong.saas.domain.entity.WorkOrderEntity;
import com.xbongbong.saas.domain.entity.WorkOrderProductEntity;

import java.util.List;
import java.util.Map;

/**
 * 工单产品
 * @author 魏荣杰
 * @date 2019/5/9 20:37
 * @since v1.0
 * @version v1.0
 */
public interface WorkOrderProductService {

    /**
     * Description: 获取工单剩余未出库产品信息及数量
     * @param corpid 公司id
     * @param workOrderId 工单id
     * @param workOrderEntity 此参数可以为null ，用于更新关联出库单id，更安全
     * @param outstockIdList 此参数用来去除特定出库单，显示合同剩余出库产品，用于编辑出库单使用，可以为null
     * @return java.util.List<com.xbongbong.saas.domain.entity.WorkOrderProductEntity>
     * @throws XbbException XbbException
     * @author 魏荣杰
     * @date 2019/5/9 20:39
     * @since v1.0
     */
    List<WorkOrderProductEntity> getSurplusProduct(String corpid, Long workOrderId, WorkOrderEntity workOrderEntity, List<Long> outstockIdList) throws XbbException;

    /**
     * 批量获取工单剩余未出库产品信息及数量
     *
     * @param corpid 公司id
     * @param workOrderIdList 工单id
     * @param outstockIdList 此参数用来去除特定出库单，显示合同剩余出库产品，用于编辑出库单使用，可以为null
     * @return java.util.List<com.xbongbong.saas.domain.entity.WorkOrderProductEntity>
     * @throws XbbException XbbException
     * @author 魏荣杰
     * @date 2019/5/9 20:39
     * @since v1.0
     */
    WorkOrderOutstockDeleteVO getSurplusProductBatch(String corpid, List<Long> workOrderIdList, List<Long> outstockIdList) throws XbbException;

}
